using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes.DomainAttributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Enums;
using System.Collections.Generic;
using System.ComponentModel;

namespace Baci.ArcGIS._SpaceTimePatternMiningTools._SpaceTimeCubeCreation
{
    /// <summary>
    /// <para>Create Space Time Cube From Defined Locations</para>
    /// <para>Takes panel data or station data (defined locations where geography does not change but attributes are changing over time) and structures it into a netCDF data format by creating space-time bins.  For all locations, the trend for variables or summary fields is evaluated.</para>
    /// <para>获取面板数据或台站数据（定义的位置，其中地理位置不变，但属性随时间变化），并通过创建时空箱格将其构建为 netCDF 数据格式。 对于所有位置，将评估变量或汇总字段的趋势。</para>
    /// </summary>    
    [DisplayName("Create Space Time Cube From Defined Locations")]
    public class CreateSpaceTimeCubeDefinedLocations : AbstractGPProcess
    {
        /// <summary>
        /// 无参构造
        /// </summary>
        public CreateSpaceTimeCubeDefinedLocations()
        {

        }

        /// <summary>
        /// 有参构造
        /// </summary>
        /// <param name="_in_features">
        /// <para>Input Features</para>
        /// <para>The input point or polygon feature class to be converted into a space-time cube.</para>
        /// <para>要转换为时空立方体的输入点或面要素类。</para>
        /// </param>
        /// <param name="_output_cube">
        /// <para>Output Space Time Cube</para>
        /// <para>The output netCDF data cube that will be created.</para>
        /// <para>将创建的输出 netCDF 数据多维数据集。</para>
        /// </param>
        /// <param name="_location_id">
        /// <para>Location ID</para>
        /// <para>An integer field containing the ID number for each unique location.</para>
        /// <para>包含每个唯一位置的 ID 号的整数字段。</para>
        /// </param>
        /// <param name="_temporal_aggregation">
        /// <para>Temporal Aggregation</para>
        /// <para><xdoc>
        ///   <para>Determines if there will be aggregation of the data temporally.</para>
        ///   <bulletList>
        ///     <bullet_item>Unchecked—The space-time cube will be created using the existing temporal structure of your Input Features. For example, you have yearly data and want to create a cube with a yearly Time Step Interval. This is the default.</bullet_item><para/>
        ///     <bullet_item>Checked—The space-time cube will temporally aggregate your features based on the Time Step Interval you provide. For example, you have data that has been collected daily and want to create a cube with a weekly Time Step Interval.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>确定是否将暂时聚合数据。</para>
        ///   <bulletList>
        ///     <bullet_item>未选中 - 时空立方体将使用输入要素的现有时态结构创建。例如，您有年度数据，并且想要创建具有年度时间步长间隔的多维数据集。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>选中 - 时空立方体将根据您提供的时间步长间隔对要素进行时间聚合。例如，您有每天收集的数据，并且想要创建具有每周时间步长间隔的多维数据集。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// </param>
        /// <param name="_time_field">
        /// <para>Time Field</para>
        /// <para>The field containing the timestamp for each row in the dataset. This field must be of type Date.</para>
        /// <para>包含数据集中每一行的时间戳的字段。此字段的类型必须为“日期”。</para>
        /// </param>
        /// <param name="_time_step_interval">
        /// <para>Time Step Interval</para>
        /// <para><xdoc>
        ///   <para>The number of seconds, minutes, hours, days, weeks, or years that will represent a single time step. Examples of valid entries for this parameter are 1 Weeks, 13 Days, or 1 Months.</para>
        ///   <para>If Temporal Aggregation is checked off, you are not aggregating temporally, and this parameter should be set to the existing temporal structure of your data.</para>
        ///   <para>If Temporal Aggregation is checked on, you are aggregating temporally, and this parameter should be set to the Time Step Interval you want to create. All features within the same Time Step Interval will be aggregated.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>表示单个时间步长的秒数、分钟数、小时数、天数、周数或年数。此参数的有效条目示例包括 1 周、13 天或 1 个月。</para>
        ///   <para>如果选中了“时态聚合”，则不会进行时间聚合，并且此参数应设置为数据的现有时态结构。</para>
        ///   <para>如果选中了“时间聚合”，则表示您正在进行时间聚合，并且此参数应设置为要创建的时间步长间隔。将聚合同一时间步长间隔内的所有要素。</para>
        /// </xdoc></para>
        /// </param>
        public CreateSpaceTimeCubeDefinedLocations(object _in_features, object _output_cube, object _location_id, _temporal_aggregation_value _temporal_aggregation, object _time_field, object _time_step_interval)
        {
            this._in_features = _in_features;
            this._output_cube = _output_cube;
            this._location_id = _location_id;
            this._temporal_aggregation = _temporal_aggregation;
            this._time_field = _time_field;
            this._time_step_interval = _time_step_interval;
        }
        public override string ToolboxName => "Space Time Pattern Mining Tools";

        public override string ToolName => "Create Space Time Cube From Defined Locations";

        public override string CallName => "stpm.CreateSpaceTimeCubeDefinedLocations";

        public override List<string> AcceptEnvironments => ["geographicTransformations", "outputCoordinateSystem", "parallelProcessingFactor", "scratchWorkspace", "workspace"];

        public override object[] ParameterInfo => [_in_features, _output_cube, _location_id, _temporal_aggregation.GetGPValue(), _time_field, _time_step_interval, _time_step_alignment.GetGPValue(), _reference_time, _variables, _summary_fields, _in_related_table, _related_location_id];

        /// <summary>
        /// <para>Input Features</para>
        /// <para>The input point or polygon feature class to be converted into a space-time cube.</para>
        /// <para>要转换为时空立方体的输入点或面要素类。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Input Features")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _in_features { get; set; }


        /// <summary>
        /// <para>Output Space Time Cube</para>
        /// <para>The output netCDF data cube that will be created.</para>
        /// <para>将创建的输出 netCDF 数据多维数据集。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Output Space Time Cube")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _output_cube { get; set; }


        /// <summary>
        /// <para>Location ID</para>
        /// <para>An integer field containing the ID number for each unique location.</para>
        /// <para>包含每个唯一位置的 ID 号的整数字段。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Location ID")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _location_id { get; set; }


        /// <summary>
        /// <para>Temporal Aggregation</para>
        /// <para><xdoc>
        ///   <para>Determines if there will be aggregation of the data temporally.</para>
        ///   <bulletList>
        ///     <bullet_item>Unchecked—The space-time cube will be created using the existing temporal structure of your Input Features. For example, you have yearly data and want to create a cube with a yearly Time Step Interval. This is the default.</bullet_item><para/>
        ///     <bullet_item>Checked—The space-time cube will temporally aggregate your features based on the Time Step Interval you provide. For example, you have data that has been collected daily and want to create a cube with a weekly Time Step Interval.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>确定是否将暂时聚合数据。</para>
        ///   <bulletList>
        ///     <bullet_item>未选中 - 时空立方体将使用输入要素的现有时态结构创建。例如，您有年度数据，并且想要创建具有年度时间步长间隔的多维数据集。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>选中 - 时空立方体将根据您提供的时间步长间隔对要素进行时间聚合。例如，您有每天收集的数据，并且想要创建具有每周时间步长间隔的多维数据集。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Temporal Aggregation")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public _temporal_aggregation_value _temporal_aggregation { get; set; }

        public enum _temporal_aggregation_value
        {
            /// <summary>
            /// <para>APPLY_TEMPORAL_AGGREGATION</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("APPLY_TEMPORAL_AGGREGATION")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>NO_TEMPORAL_AGGREGATION</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("NO_TEMPORAL_AGGREGATION")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>Time Field</para>
        /// <para>The field containing the timestamp for each row in the dataset. This field must be of type Date.</para>
        /// <para>包含数据集中每一行的时间戳的字段。此字段的类型必须为“日期”。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Time Field")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _time_field { get; set; }


        /// <summary>
        /// <para>Time Step Interval</para>
        /// <para><xdoc>
        ///   <para>The number of seconds, minutes, hours, days, weeks, or years that will represent a single time step. Examples of valid entries for this parameter are 1 Weeks, 13 Days, or 1 Months.</para>
        ///   <para>If Temporal Aggregation is checked off, you are not aggregating temporally, and this parameter should be set to the existing temporal structure of your data.</para>
        ///   <para>If Temporal Aggregation is checked on, you are aggregating temporally, and this parameter should be set to the Time Step Interval you want to create. All features within the same Time Step Interval will be aggregated.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>表示单个时间步长的秒数、分钟数、小时数、天数、周数或年数。此参数的有效条目示例包括 1 周、13 天或 1 个月。</para>
        ///   <para>如果选中了“时态聚合”，则不会进行时间聚合，并且此参数应设置为数据的现有时态结构。</para>
        ///   <para>如果选中了“时间聚合”，则表示您正在进行时间聚合，并且此参数应设置为要创建的时间步长间隔。将聚合同一时间步长间隔内的所有要素。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Time Step Interval")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _time_step_interval { get; set; }


        /// <summary>
        /// <para>Time Step Alignment</para>
        /// <para><xdoc>
        ///   <para>Defines how the cube structure will occur based on a given Time Step Interval.</para>
        ///   <bulletList>
        ///     <bullet_item>End time—Time steps align to the last time event and aggregate back in time. This is the default.</bullet_item><para/>
        ///     <bullet_item>Start time—Time steps align to the first time event and aggregate forward in time.</bullet_item><para/>
        ///     <bullet_item>Reference time—Time steps align to a particular date/time that you specify. If all points in the input features have a timestamp larger than the Reference time you provide (or it falls exactly on the start time of the input features), the time-step interval will begin with that reference time and aggregate forward in time (as occurs with a Start time alignment). If all points in the input features have a timestamp smaller than the reference time you provide (or it falls exactly on the end time of the input features), the time-step interval will end with that reference time and aggregate backward in time (as occurs with an End time alignment). If the Reference time you provide is in the middle of the time extent of your data, a time-step interval will be created ending with the reference time provided (as occurs with an End time alignment); additional intervals will be created both before and after the reference time until the full time extent of your data is covered.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>定义多维数据集结构如何基于给定的时间步长间隔发生。</para>
        ///   <bulletList>
        ///     <bullet_item>结束时间 - 时间步长与上次时间事件对齐，并按时间聚合回程。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>开始时间 - 时间步长与首次时间事件对齐，并在时间上向前聚合。</bullet_item><para/>
        ///     <bullet_item>参考时间 - 时间步长与您指定的特定日期/时间对齐。如果输入要素中所有点的时间戳都大于您提供的参考时间（或者正好落在输入要素的开始时间上），则时间步长间隔将从该参考时间开始，并在时间上向前聚合（与开始时间对齐一样）。如果输入要素中所有点的时间戳都小于您提供的参考时间（或者正好落在输入要素的结束时间），则时间步长间隔将以该参考时间结束，并在时间上向后聚合（如结束时间对齐）。如果您提供的参考时间位于数据时间范围的中间，则将创建一个以提供的参考时间结尾的时间步长间隔（与结束时间对齐一样）;将在参考时间之前和之后创建其他时间间隔，直到覆盖数据的完整时间范围。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Time Step Alignment")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _time_step_alignment_value _time_step_alignment { get; set; } = _time_step_alignment_value._END_TIME;

        public enum _time_step_alignment_value
        {
            /// <summary>
            /// <para>End time</para>
            /// <para>End time—Time steps align to the last time event and aggregate back in time. This is the default.</para>
            /// <para>结束时间 - 时间步长与上次时间事件对齐，并按时间聚合回程。这是默认设置。</para>
            /// </summary>
            [Description("End time")]
            [GPEnumValue("END_TIME")]
            _END_TIME,

            /// <summary>
            /// <para>Start time</para>
            /// <para>Start time—Time steps align to the first time event and aggregate forward in time.</para>
            /// <para>开始时间 - 时间步长与首次时间事件对齐，并在时间上向前聚合。</para>
            /// </summary>
            [Description("Start time")]
            [GPEnumValue("START_TIME")]
            _START_TIME,

            /// <summary>
            /// <para>Reference time</para>
            /// <para>Reference time—Time steps align to a particular date/time that you specify. If all points in the input features have a timestamp larger than the Reference time you provide (or it falls exactly on the start time of the input features), the time-step interval will begin with that reference time and aggregate forward in time (as occurs with a Start time alignment). If all points in the input features have a timestamp smaller than the reference time you provide (or it falls exactly on the end time of the input features), the time-step interval will end with that reference time and aggregate backward in time (as occurs with an End time alignment). If the Reference time you provide is in the middle of the time extent of your data, a time-step interval will be created ending with the reference time provided (as occurs with an End time alignment); additional intervals will be created both before and after the reference time until the full time extent of your data is covered.</para>
            /// <para>参考时间 - 时间步长与您指定的特定日期/时间对齐。如果输入要素中所有点的时间戳都大于您提供的参考时间（或者正好落在输入要素的开始时间上），则时间步长间隔将从该参考时间开始，并在时间上向前聚合（与开始时间对齐一样）。如果输入要素中所有点的时间戳都小于您提供的参考时间（或者正好落在输入要素的结束时间），则时间步长间隔将以该参考时间结束，并在时间上向后聚合（如结束时间对齐）。如果您提供的参考时间位于数据时间范围的中间，则将创建一个以提供的参考时间结尾的时间步长间隔（与结束时间对齐一样）;将在参考时间之前和之后创建其他时间间隔，直到覆盖数据的完整时间范围。</para>
            /// </summary>
            [Description("Reference time")]
            [GPEnumValue("REFERENCE_TIME")]
            _REFERENCE_TIME,

        }

        /// <summary>
        /// <para>Reference Time</para>
        /// <para>The date/time to used to align the time-step intervals. If you want to bin your data weekly from Monday to Sunday, for example, you could set a reference time of Sunday at midnight to ensure bins break between Sunday and Monday at midnight.</para>
        /// <para>用于对齐时间步长间隔的日期/时间。例如，如果要每周从周一到周日对数据进行分箱，则可以将参考时间设置为周日午夜，以确保在周日和周一午夜之间中断数据箱。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Reference Time")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _reference_time { get; set; } = null;


        /// <summary>
        /// <para>Variables</para>
        /// <para><xdoc>
        ///   <para>The numeric field containing attribute values that will be brought into the space-time cube.</para>
        ///   <para>Available fill types are:
        ///   <bulletList>
        ///     <bullet_item>DROP_LOCATIONS–Locations with missing data for any of the variables will be dropped from the output space-time cube.  </bullet_item><para/>
        ///     <bullet_item>ZEROS–Fills empty bins with zeros.  </bullet_item><para/>
        ///     <bullet_item>SPATIAL_NEIGHBORS–Fills empty bins with the average value of spatial neighbors.  </bullet_item><para/>
        ///     <bullet_item>SPACE_TIME_NEIGHBORS–Fills empty bins with the average value of space time neighbors.  </bullet_item><para/>
        ///     <bullet_item>TEMPORAL_TREND–Fills empty bins using an interpolated univariate spline algorithm.  </bullet_item><para/>
        ///   </bulletList>
        ///   </para>
        ///   <para>Null values present in any of the variable records will result in an empty bin. If there are null values present in your input features, it is highly recommended that you run the Fill Missing Values tool first.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>包含将引入时空立方体的属性值的数值字段。</para>
        /// <para>可用的填充类型包括：
        ///   <bulletList>
        ///     <bullet_item>DROP_LOCATIONS – 任何变量的数据缺失的位置都将从输出时空立方体中删除。</bullet_item><para/>
        ///     <bullet_item>ZEROS – 用零填充空箱。</bullet_item><para/>
        ///     <bullet_item>SPATIAL_NEIGHBORS – 使用空间邻居的平均值填充空箱。</bullet_item><para/>
        ///     <bullet_item>SPACE_TIME_NEIGHBORS – 用时空邻居的平均值填充空箱。</bullet_item><para/>
        ///     <bullet_item>TEMPORAL_TREND–使用插值单变量样条算法填充空箱。</bullet_item><para/>
        ///   </bulletList>
        ///   </para>
        ///   <para>任何变量记录中存在的 Null 值都将导致空箱。如果输入要素中存在空值，强烈建议您先运行填充缺失值工具。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Variables")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _variables { get; set; } = null;


        /// <summary>
        /// <para>Summary Fields</para>
        /// <para><xdoc>
        ///   <para>The numeric field containing attribute values used to calculate the specified statistic when aggregating into a space-time cube. Multiple statistic and field combinations can be specified. Null values in any of the fields specified will result in that feature being dropped from the output cube. If there are null values present in your input features, it is highly recommended you run the Fill Missing Values tool before creating a space time cube.</para>
        ///   <para>Available statistic types are:
        ///   <bulletList>
        ///     <bullet_item>SUM–Adds the total value for the specified field within each bin.  </bullet_item><para/>
        ///     <bullet_item>MEAN–Calculates the average for the specified field within each bin.  </bullet_item><para/>
        ///     <bullet_item>MIN–Finds the smallest value for all records of the specified field within each bin.  </bullet_item><para/>
        ///     <bullet_item>MAX–Finds the largest value for all records of the specified field within each bin.  </bullet_item><para/>
        ///     <bullet_item>STD–Finds the standard deviation on values in the specified field within each bin.  </bullet_item><para/>
        ///     <bullet_item>MEDIAN–Finds the sorted middle value of all records of the specified field within each bin.  </bullet_item><para/>
        ///   </bulletList>
        ///   </para>
        ///   <para>Available fill types are:
        ///   <bulletList>
        ///     <bullet_item>ZEROS–Fills empty bins with zeros.  </bullet_item><para/>
        ///     <bullet_item>SPATIAL_NEIGHBORS–Fills empty bins with the average value of spatial neighbors  </bullet_item><para/>
        ///     <bullet_item>SPACE_TIME_NEIGHBORS–Fills empty bins with the average value of space time neighbors.  </bullet_item><para/>
        ///     <bullet_item>TEMPORAL_TREND–Fills empty bins using an interpolated univariate spline algorithm.  </bullet_item><para/>
        ///   </bulletList>
        ///   </para>
        ///   <para>Null values present in any of the summary field records will result in those features being excluded from the output cube. If there are null values present in your Input Features, it is highly recommended that you run the Fill Missing Values tool first. If, after running the Fill Missing Values tool, there are still null values present and having the count of points in each bin is part of your analysis strategy, you may want to consider creating separate cubes, one for the count (without Summary Fields) and one for Summary Fields. If the set of null values is different for each summary field, you may also consider creating a separate cube for each summary field.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>包含属性值的数值字段，用于在聚合到时空立方体中时计算指定的统计数据。可以指定多个统计量和字段组合。如果指定任何字段中的空值将导致该要素从输出多维数据集中删除。如果输入要素中存在空值，强烈建议您在创建时空立方体之前运行填充缺失值工具。</para>
        /// <para>可用的统计信息类型包括：
        ///   <bulletList>
        ///     <bullet_item>SUM–将每个图柱中指定字段的总值相加。</bullet_item><para/>
        ///     <bullet_item>MEAN – 计算每个图柱中指定字段的平均值。</bullet_item><para/>
        ///     <bullet_item>MIN – 查找每个图格中指定字段的所有记录的最小值。</bullet_item><para/>
        ///     <bullet_item>MAX – 查找每个图柱中指定字段的所有记录的最大值。</bullet_item><para/>
        ///     <bullet_item>STD – 查找每个图格中指定字段中值的标准偏差。</bullet_item><para/>
        ///     <bullet_item>MEDIAN – 查找每个图格中指定字段的所有记录的排序中间值。</bullet_item><para/>
        ///   </bulletList>
        ///   </para>
        /// <para>可用的填充类型包括：
        ///   <bulletList>
        ///     <bullet_item>ZEROS – 用零填充空箱。</bullet_item><para/>
        ///     <bullet_item>SPATIAL_NEIGHBORS – 使用空间相邻点的平均值填充空箱</bullet_item><para/>
        ///     <bullet_item>SPACE_TIME_NEIGHBORS – 用时空邻居的平均值填充空箱。</bullet_item><para/>
        ///     <bullet_item>TEMPORAL_TREND–使用插值单变量样条算法填充空箱。</bullet_item><para/>
        ///   </bulletList>
        ///   </para>
        ///   <para>任何汇总字段记录中存在的空值将导致这些要素从输出多维数据集中排除。如果输入要素中存在空值，强烈建议您先运行填充缺失值工具。如果在运行“填充缺失值”工具后，仍然存在空值，并且每个图格中的点计数是分析策略的一部分，则可能需要考虑创建单独的立方体，一个用于计数（不带汇总字段），一个用于汇总字段。如果每个汇总字段的 null 值集不同，则还可以考虑为每个汇总字段创建一个单独的多维数据集。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Summary Fields")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _summary_fields { get; set; } = null;


        /// <summary>
        /// <para>Related Table</para>
        /// <para>The table or table view to be related to the input features.</para>
        /// <para>要与输入要素相关的表或表视图。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Related Table")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _in_related_table { get; set; } = null;


        /// <summary>
        /// <para>Related Location ID</para>
        /// <para>An integer field in the related table that contains the location ID on which the relate will be based.</para>
        /// <para>相关表中的整数字段，其中包含关联将基于的位置 ID。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Related Location ID")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _related_location_id { get; set; } = null;


        public CreateSpaceTimeCubeDefinedLocations SetEnv(object geographicTransformations = null, object outputCoordinateSystem = null, object parallelProcessingFactor = null, object scratchWorkspace = null, object workspace = null)
        {
            base.SetEnv(geographicTransformations: geographicTransformations, outputCoordinateSystem: outputCoordinateSystem, parallelProcessingFactor: parallelProcessingFactor, scratchWorkspace: scratchWorkspace, workspace: workspace);
            return this;
        }

    }

}